var runtime.mheap_
280 uses
runtime (current package)
arena.go#L765: span = mheap_.allocUserArenaChunk()
arena.go#L914: lock(&mheap_.lock)
arena.go#L915: mheap_.userArena.quarantineList.insert(s)
arena.go#L916: unlock(&mheap_.lock)
arena.go#L1016: v, size := h.sysAlloc(userArenaChunkBytes, hintList, &mheap_.userArenaArenas)
heapdump.go#L463: for _, s := range mheap_.allspans {
heapdump.go#L489: for _, s := range mheap_.allspans {
heapdump.go#L526: for i1 := range mheap_.arenas {
heapdump.go#L527: if mheap_.arenas[i1] == nil {
heapdump.go#L530: for i, ha := range mheap_.arenas[i1] {
heapdump.go#L661: for _, s := range mheap_.allspans {
heapdump.go#L684: for _, s := range mheap_.allspans {
malloc.go#L493: mheap_.init()
malloc.go#L638: hintList := &mheap_.arenaHints
malloc.go#L640: hintList = &mheap_.userArena.arenaHints
malloc.go#L642: hint := (*arenaHint)(mheap_.arenaHintAlloc.alloc())
malloc.go#L667: mheap_.heapArenaAlloc.init(meta, arenaMetaSize, true)
malloc.go#L690: if mheap_.heapArenaAlloc.next <= p && p < mheap_.heapArenaAlloc.end {
malloc.go#L691: p = mheap_.heapArenaAlloc.end
malloc.go#L704: mheap_.arena.init(uintptr(a), size, false)
malloc.go#L705: p = mheap_.arena.end // For hint below
malloc.go#L709: hint := (*arenaHint)(mheap_.arenaHintAlloc.alloc())
malloc.go#L711: hint.next, mheap_.arenaHints = mheap_.arenaHints, hint
malloc.go#L717: userArenaHint := (*arenaHint)(mheap_.arenaHintAlloc.alloc())
malloc.go#L719: userArenaHint.next, mheap_.userArena.arenaHints = mheap_.userArena.arenaHints, userArenaHint
malloc.go#L817: hint.next, mheap_.arenaHints = mheap_.arenaHints, hint
malloc.go#L820: hint.next, mheap_.arenaHints = mheap_.arenaHints, hint
malloc.go#L2020: println("freegc [in mcache]:", hex(uintptr(v)), "sweepgen:", mheap_.sweepgen, "writeBarrier.enabled:", writeBarrier.enabled)
malloc.go#L2022: println("freegc [NOT in mcache]:", hex(uintptr(v)), "sweepgen:", mheap_.sweepgen, "writeBarrier.enabled:", writeBarrier.enabled)
malloc.go#L2057: println("reusing from ptr free list:", hex(v), "sweepgen:", mheap_.sweepgen, "writeBarrier.enabled:", writeBarrier.enabled)
mcache.go#L100: lock(&mheap_.lock)
mcache.go#L101: c = (*mcache)(mheap_.cachealloc.alloc())
mcache.go#L102: c.flushGen.Store(mheap_.sweepgen)
mcache.go#L103: unlock(&mheap_.lock)
mcache.go#L129: lock(&mheap_.lock)
mcache.go#L130: mheap_.cachealloc.free(unsafe.Pointer(c))
mcache.go#L131: unlock(&mheap_.lock)
mcache.go#L179: if s.sweepgen != mheap_.sweepgen+3 {
mcache.go#L182: mheap_.central[spc].mcentral.uncacheSpan(s)
mcache.go#L205: s = mheap_.central[spc].mcentral.cacheSpan()
mcache.go#L216: s.sweepgen = mheap_.sweepgen + 3
mcache.go#L257: s := mheap_.alloc(npages, spc)
mcache.go#L276: mheap_.central[spc].mcentral.fullSwept(mheap_.sweepgen).push(s)
mcache.go#L295: sg := mheap_.sweepgen
mcache.go#L322: mheap_.central[i].mcentral.uncacheSpan(s)
mcache.go#L358: sg := mheap_.sweepgen
mcache.go#L368: c.flushGen.Store(mheap_.sweepgen) // Synchronizes with gcStart
mcentral.go#L113: sg := mheap_.sweepgen
mcentral.go#L210: sg := mheap_.sweepgen
mcentral.go#L253: s := mheap_.alloc(npages, c.spanclass)
mcheckmark.go#L43: arena := mheap_.arenas[ai.l1()][ai.l2()]
mcheckmark.go#L58: for _, ai := range mheap_.heapArenas {
mcheckmark.go#L61: for _, ai := range mheap_.userArenaArenas {
mcheckmark.go#L109: arena := mheap_.arenas[ai.l1()][ai.l2()]
mcheckmark.go#L302: for _, ai := range mheap_.markArenas {
mcheckmark.go#L303: ha := mheap_.arenas[ai.l1()][ai.l2()]
mcleanup.go#L274: lock(&mheap_.speciallock)
mcleanup.go#L275: mheap_.specialCleanupAlloc.free(unsafe.Pointer(found))
mcleanup.go#L276: unlock(&mheap_.speciallock)
metrics.go#L731: lock(&mheap_.lock)
metrics.go#L733: a.mSpanInUse = uint64(mheap_.spanalloc.inuse)
metrics.go#L735: a.mCacheInUse = uint64(mheap_.cachealloc.inuse)
metrics.go#L736: unlock(&mheap_.lock)
mgc.go#L807: if fg := p.mcache.flushGen.Load(); fg != mheap_.sweepgen {
mgc.go#L808: println("runtime: p", p.id, "flushGen", fg, "!= sweepgen", mheap_.sweepgen)
mgc.go#L1465: mheap_.pages.scav.index.nextGen()
mgc.go#L1549: lock(&mheap_.lock)
mgc.go#L1550: pp.pcache.flush(&mheap_.pages)
mgc.go#L1551: unlock(&mheap_.lock)
mgc.go#L1650: mheap_.enableMetadataHugePages()
mgc.go#L2056: lock(&mheap_.lock)
mgc.go#L2057: mheap_.sweepgen += 2
mgc.go#L2059: mheap_.pagesSwept.Store(0)
mgc.go#L2060: mheap_.sweepArenas = mheap_.heapArenas
mgc.go#L2061: mheap_.reclaimIndex.Store(0)
mgc.go#L2062: mheap_.reclaimCredit.Store(0)
mgc.go#L2063: unlock(&mheap_.lock)
mgc.go#L2070: lock(&mheap_.lock)
mgc.go#L2071: mheap_.sweepPagesPerByte = 0
mgc.go#L2072: unlock(&mheap_.lock)
mgc.go#L2123: lock(&mheap_.lock)
mgc.go#L2124: arenas := mheap_.heapArenas
mgc.go#L2125: unlock(&mheap_.lock)
mgc.go#L2127: ha := mheap_.arenas[ai.l1()][ai.l2()]
mgc.go#L2271: lock(&mheap_.speciallock)
mgc.go#L2272: s := (*specialReachable)(mheap_.specialReachableAlloc.alloc())
mgc.go#L2273: unlock(&mheap_.speciallock)
mgc.go#L2298: lock(&mheap_.speciallock)
mgc.go#L2299: mheap_.specialReachableAlloc.free(unsafe.Pointer(s))
mgc.go#L2300: unlock(&mheap_.speciallock)
mgcmark.go#L145: mheap_.markArenas = mheap_.heapArenas[:len(mheap_.heapArenas):len(mheap_.heapArenas)]
mgcmark.go#L146: work.nSpanRoots = len(mheap_.markArenas) * (pagesPerArena / pagesPerSpanRoot)
mgcmark.go#L410: sg := mheap_.sweepgen
mgcmark.go#L413: ai := mheap_.markArenas[shard/(pagesPerArena/pagesPerSpanRoot)]
mgcmark.go#L414: ha := mheap_.arenas[ai.l1()][ai.l2()]
mgcmark_greenteagc.go#L642: mheap_.spanSPMCAlloc.free(unsafe.Pointer(r))
mgcmark_greenteagc.go#L710: r := (*spanSPMC)(mheap_.spanSPMCAlloc.alloc())
mgcmark_greenteagc.go#L787: mheap_.spanSPMCAlloc.free(unsafe.Pointer(r))
mgcpacer.go#L1278: assertWorldStoppedOrLockHeld(&mheap_.lock)
mgcpacer.go#L1338: assertWorldStoppedOrLockHeld(&mheap_.lock)
mgcpacer.go#L1355: lock(&mheap_.lock)
mgcpacer.go#L1358: unlock(&mheap_.lock)
mgcpacer.go#L1387: assertWorldStoppedOrLockHeld(&mheap_.lock)
mgcpacer.go#L1402: lock(&mheap_.lock)
mgcpacer.go#L1407: unlock(&mheap_.lock)
mgcpacer.go#L1411: unlock(&mheap_.lock)
mgcpacer.go#L1519: assertWorldStoppedOrLockHeld(&mheap_.lock)
mgcscavenge.go#L168: assertWorldStoppedOrLockHeld(&mheap_.lock)
mgcscavenge.go#L395: r := mheap_.pages.scavenge(n, nil, false)
mgcscavenge.go#L661: mheap_.pages.scav.releasedBg.Add(released)
mgcsweep.go#L152: return sweepLocker{mheap_.sweepgen, false}
mgcsweep.go#L155: return sweepLocker{mheap_.sweepgen, true}
mgcsweep.go#L163: if sl.sweepGen != mheap_.sweepgen {
mgcsweep.go#L178: print("pacer: sweep done at heap size ", live>>20, "MB; allocated ", (live-mheap_.sweepHeapLiveBasis)>>20, "MB during sweep; swept ", mheap_.pagesSwept.Load(), " pages at ", mheap_.sweepPagesPerByte, " pages/byte\n")
mgcsweep.go#L255: sg := mheap_.sweepgen
mgcsweep.go#L256: for i := range mheap_.central {
mgcsweep.go#L257: c := &mheap_.central[i].mcentral
mgcsweep.go#L378: s := mheap_.nextSpanForSweep()
mgcsweep.go#L400: mheap_.reclaimCredit.Add(npages)
mgcsweep.go#L430: lock(&mheap_.lock)
mgcsweep.go#L433: releasedBg := mheap_.pages.scav.releasedBg.Load()
mgcsweep.go#L434: releasedEager := mheap_.pages.scav.releasedEager.Load()
mgcsweep.go#L440: mheap_.pages.scav.releasedBg.Add(-releasedBg)
mgcsweep.go#L441: mheap_.pages.scav.releasedEager.Add(-releasedEager)
mgcsweep.go#L442: unlock(&mheap_.lock)
mgcsweep.go#L520: sweepgen := mheap_.sweepgen
mgcsweep.go#L532: mheap_.pagesSwept.Add(int64(s.npages))
mgcsweep.go#L740: mheap_.central[spc].mcentral.fullSwept(sweepgen).push(s)
mgcsweep.go#L746: mheap_.pagesInUse.Add(-s.npages)
mgcsweep.go#L754: if s.list != &mheap_.userArena.quarantineList {
mgcsweep.go#L757: lock(&mheap_.lock)
mgcsweep.go#L758: mheap_.userArena.quarantineList.remove(s)
mgcsweep.go#L759: mheap_.userArena.readyList.insert(s)
mgcsweep.go#L760: unlock(&mheap_.lock)
mgcsweep.go#L788: mheap_.freeSpan(s)
mgcsweep.go#L793: mheap_.central[spc].mcentral.fullSwept(sweepgen).push(s)
mgcsweep.go#L795: mheap_.central[spc].mcentral.partialSwept(sweepgen).push(s)
mgcsweep.go#L834: mheap_.freeSpan(s)
mgcsweep.go#L840: mheap_.central[spc].mcentral.fullSwept(sweepgen).push(s)
mgcsweep.go#L914: if mheap_.sweepPagesPerByte == 0 {
mgcsweep.go#L927: sweptBasis := mheap_.pagesSweptBasis.Load()
mgcsweep.go#L929: liveBasis := mheap_.sweepHeapLiveBasis
mgcsweep.go#L949: pagesTarget := int64(mheap_.sweepPagesPerByte*float64(newHeapLive)) - int64(callerSweepPages)
mgcsweep.go#L950: for pagesTarget > int64(mheap_.pagesSwept.Load()-sweptBasis) {
mgcsweep.go#L952: mheap_.sweepPagesPerByte = 0
mgcsweep.go#L955: if mheap_.pagesSweptBasis.Load() != sweptBasis {
mgcsweep.go#L983: assertWorldStoppedOrLockHeld(&mheap_.lock)
mgcsweep.go#L987: mheap_.sweepPagesPerByte = 0
mgcsweep.go#L1004: pagesSwept := mheap_.pagesSwept.Load()
mgcsweep.go#L1005: pagesInUse := mheap_.pagesInUse.Load()
mgcsweep.go#L1008: mheap_.sweepPagesPerByte = 0
mgcsweep.go#L1010: mheap_.sweepPagesPerByte = float64(sweepDistancePages) / float64(heapDistance)
mgcsweep.go#L1011: mheap_.sweepHeapLiveBasis = heapLiveBasis
mgcsweep.go#L1015: mheap_.pagesSweptBasis.Store(pagesSwept)
mgcwork.go#L165: lockWithRankMayAcquire(&mheap_.lock, lockRankMheap)
mgcwork.go#L435: lockWithRankMayAcquire(&mheap_.lock, lockRankMheap)
mgcwork.go#L450: s = mheap_.allocManual(workbufAlloc/pageSize, spanAllocWorkBuf)
mgcwork.go#L555: mheap_.freeManual(span, spanAllocWorkBuf)
mheap.go#L264: var mheap_ mheap
mheap.go#L705: if ri.l2() >= uint(len(mheap_.arenas[0])) {
mheap.go#L710: if ri.l1() >= uint(len(mheap_.arenas)) {
mheap.go#L714: l2 := mheap_.arenas[ri.l1()]
mheap.go#L733: return mheap_.arenas[ai.l1()][ai.l2()].spans[(p/pageSize)%pagesPerArena]
mheap.go#L759: arena = mheap_.arenas[ai.l1()][ai.l2()]
mheap.go#L770: if ri.l2() >= uint(len(mheap_.arenas[0])) {
mheap.go#L775: if ri.l1() >= uint(len(mheap_.arenas)) {
mheap.go#L779: l2 := mheap_.arenas[ri.l1()]
mheap.go#L1382: mheap_.pages.scav.releasedEager.Add(released)
mheap.go#L1815: systemstack(func() { mheap_.scavengeAll() })
mheap.go#L1985: ha := mheap_.arenas[ai.l1()][ai.l2()]
mheap.go#L1993: ha := mheap_.arenas[ai.l1()][ai.l2()]
mheap.go#L2111: lock(&mheap_.speciallock)
mheap.go#L2112: s := (*specialfinalizer)(mheap_.specialfinalizeralloc.alloc())
mheap.go#L2113: unlock(&mheap_.speciallock)
mheap.go#L2142: lock(&mheap_.speciallock)
mheap.go#L2143: mheap_.specialfinalizeralloc.free(unsafe.Pointer(s))
mheap.go#L2144: unlock(&mheap_.speciallock)
mheap.go#L2154: lock(&mheap_.speciallock)
mheap.go#L2155: mheap_.specialfinalizeralloc.free(unsafe.Pointer(s))
mheap.go#L2156: unlock(&mheap_.speciallock)
mheap.go#L2177: lock(&mheap_.speciallock)
mheap.go#L2178: s := (*specialCleanup)(mheap_.specialCleanupAlloc.alloc())
mheap.go#L2179: mheap_.cleanupID++ // Increment first. ID 0 is reserved.
mheap.go#L2180: id := mheap_.cleanupID
mheap.go#L2181: unlock(&mheap_.speciallock)
mheap.go#L2226: lock(&mheap_.speciallock)
mheap.go#L2227: s := (*specialCheckFinalizer)(mheap_.specialCheckFinalizerAlloc.alloc())
mheap.go#L2228: unlock(&mheap_.speciallock)
mheap.go#L2333: lock(&mheap_.speciallock)
mheap.go#L2334: mheap_.specialCheckFinalizerAlloc.free(unsafe.Pointer(found))
mheap.go#L2335: unlock(&mheap_.speciallock)
mheap.go#L2351: lock(&mheap_.speciallock)
mheap.go#L2352: s := (*specialTinyBlock)(mheap_.specialTinyBlockAlloc.alloc())
mheap.go#L2353: unlock(&mheap_.speciallock)
mheap.go#L2522: handle := mheap_.immortalWeakHandles.getOrAdd(uintptr(p))
mheap.go#L2535: lock(&mheap_.speciallock)
mheap.go#L2536: s := (*specialWeakHandle)(mheap_.specialWeakHandleAlloc.alloc())
mheap.go#L2537: unlock(&mheap_.speciallock)
mheap.go#L2583: lock(&mheap_.speciallock)
mheap.go#L2584: mheap_.specialWeakHandleAlloc.free(unsafe.Pointer(s))
mheap.go#L2585: unlock(&mheap_.speciallock)
mheap.go#L2605: return mheap_.immortalWeakHandles.getOrAdd(uintptr(p))
mheap.go#L2718: lock(&mheap_.speciallock)
mheap.go#L2719: s := (*specialprofile)(mheap_.specialprofilealloc.alloc())
mheap.go#L2720: unlock(&mheap_.speciallock)
mheap.go#L2791: lock(&mheap_.speciallock)
mheap.go#L2792: mheap_.specialfinalizeralloc.free(unsafe.Pointer(sf))
mheap.go#L2793: unlock(&mheap_.speciallock)
mheap.go#L2797: lock(&mheap_.speciallock)
mheap.go#L2798: mheap_.specialWeakHandleAlloc.free(unsafe.Pointer(s))
mheap.go#L2799: unlock(&mheap_.speciallock)
mheap.go#L2803: lock(&mheap_.speciallock)
mheap.go#L2804: mheap_.specialprofilealloc.free(unsafe.Pointer(sp))
mheap.go#L2805: unlock(&mheap_.speciallock)
mheap.go#L2811: lock(&mheap_.speciallock)
mheap.go#L2812: mheap_.specialPinCounterAlloc.free(unsafe.Pointer(s))
mheap.go#L2813: unlock(&mheap_.speciallock)
mheap.go#L2820: lock(&mheap_.speciallock)
mheap.go#L2821: mheap_.specialCleanupAlloc.free(unsafe.Pointer(sc))
mheap.go#L2822: unlock(&mheap_.speciallock)
mheap.go#L2825: lock(&mheap_.speciallock)
mheap.go#L2826: mheap_.specialCheckFinalizerAlloc.free(unsafe.Pointer(sc))
mheap.go#L2827: unlock(&mheap_.speciallock)
mheap.go#L2830: lock(&mheap_.speciallock)
mheap.go#L2831: mheap_.specialTinyBlockAlloc.free(unsafe.Pointer(st))
mheap.go#L2832: unlock(&mheap_.speciallock)
mheap.go#L2835: lock(&mheap_.speciallock)
mheap.go#L2836: mheap_.specialBubbleAlloc.free(unsafe.Pointer(st))
mheap.go#L2837: unlock(&mheap_.speciallock)
mheap.go#L2852: lock(&mheap_.speciallock)
mheap.go#L2853: mheap_.specialSecretAlloc.free(unsafe.Pointer(s))
mheap.go#L2854: unlock(&mheap_.speciallock)
mpagealloc.go#L459: lock(&mheap_.lock)
mpagealloc.go#L461: unlock(&mheap_.lock)
mpagealloc.go#L468: unlock(&mheap_.lock)
mpagealloc.go#L624: if p.test || mheap_.arenas[ai.l1()] == nil || mheap_.arenas[ai.l1()][ai.l2()] == nil {
mstats.go#L539: stats.MSpanInuse = uint64(mheap_.spanalloc.inuse)
mstats.go#L541: stats.MCacheInuse = uint64(mheap_.cachealloc.inuse)
mstats.go#L585: lock(&mheap_.lock)
mstats.go#L606: unlock(&mheap_.lock)
panic.go#L1514: if mheap_.cachealloc.size == 0 { // very early
pinner.go#L350: lock(&mheap_.speciallock)
pinner.go#L351: rec = (*specialPinCounter)(mheap_.specialPinCounterAlloc.alloc())
pinner.go#L352: unlock(&mheap_.speciallock)
pinner.go#L379: lock(&mheap_.speciallock)
pinner.go#L380: mheap_.specialPinCounterAlloc.free(unsafe.Pointer(counter))
pinner.go#L381: unlock(&mheap_.speciallock)
proc.go#L5984: mheap_.spanalloc.free(unsafe.Pointer(pp.mspancache.buf[i]))
proc.go#L5987: lock(&mheap_.lock)
proc.go#L5988: pp.pcache.flush(&mheap_.pages)
proc.go#L5989: unlock(&mheap_.lock)
secret.go#L66: lock(&mheap_.speciallock)
secret.go#L67: s := (*specialSecret)(mheap_.specialSecretAlloc.alloc())
secret.go#L70: unlock(&mheap_.speciallock)
stack.go#L197: lockWithRankMayAcquire(&mheap_.lock, lockRankMheap)
stack.go#L200: s = mheap_.allocManual(_StackCacheSize>>gc.PageShift, spanAllocStack)
stack.go#L271: mheap_.freeManual(s, spanAllocStack)
stack.go#L418: lockWithRankMayAcquire(&mheap_.lock, lockRankMheap)
stack.go#L422: s = mheap_.allocManual(npage, spanAllocStack)
stack.go#L543: mheap_.freeManual(s, spanAllocStack)
stack.go#L1320: mheap_.freeManual(s, spanAllocStack)
stack.go#L1334: mheap_.freeManual(s, spanAllocStack)
synctest.go#L413: lock(&mheap_.speciallock)
synctest.go#L414: s := (*specialBubble)(mheap_.specialBubbleAlloc.alloc())
synctest.go#L415: unlock(&mheap_.speciallock)
trace.go#L376: trace.minPageHeapAddr = uint64(mheap_.pages.inUse.ranges[0].base.addr())
traceallocfree.go#L55: for _, s := range mheap_.allspans {
 |
The pages are generated with Golds v0.8.4. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |